This invention relates to executing dynamic expressions based on features describing user actions in online systems, for example, social networking systems.
Online systems often present information useful to users and allow users to interact with the online system. Online systems may use various techniques to determine information that is likely to be of interest to a user before presenting the information to the user. Users are more likely to visit the online system regularly if they are presented with information they like. Online systems often earn revenue from advertisements. Advertisers prefer to advertise in online systems that are regularly visited by their users. Therefore, user loyalty may determine revenues generated by an online system. As a result, the ability of an online system to present interesting information to users typically affects the revenue earned by the online system.
Online systems often use past user actions for making decisions regarding actions taken by the online systems. For example, past user behavior may be used by an online system to suggest information to the user that a user may find interesting. An example of an online system is a social networking system that allows users to establish connections with each other. A social networking system may use past user actions to identify news feed stories that may be of interest to a user or to identify potential friends of a user for recommending to the user. Online systems often rank these entities, for example, users, newsfeed items, content, advertisements, and the like to determine which entities should be presented to a target user. Ranking these entities often requires computations based on user attributes, for example, expressions used to represent features used for ranking entities.
Online systems often constantly evolve as new functionality is added and existing functionality modified. These changes may be made to improve the online system, for example, based on user feedback, changes in technology, or development of new functionality. As a result, the computations that need to be performed in the online system keep changing on a regular basis. Conventional systems often require system upgrades to introduce these changes in computations. Since online systems are expected to run continuously, system upgrades can be a complex process and frequent system upgrades can consume significant resources.